package org.niux.aims.action.ajax;

import javax.annotation.Resource;

import org.apache.struts2.ServletActionContext;
import org.niux.aims.common.util.DataBackup;
import org.niux.aims.common.util.FileUtil;
import org.niux.aims.common.web.AimsBaseAction;
import org.niux.aims.service.ILogsService;
import org.niux.aims.vo.AccountVO;

/**
 * 
 * Copyright (c) 2009,niux<br>
 * All rights reserved.<br>
 * 
 * 文件名称：DatabackupAjax.java<br>
 * 摘    要：备份数据库AJAX类<br>
 * <br>
 * 当前版本：<br>
 * 作    者：铭显 Email: <a href="mailto:liangmingxian@gmail.com">liangmingxian@gmail.com</a><br>
 * 完成日期：@since 2013-9-24<br>
 * <br>
 * 取代版本：<br>
 * 原作者  ：<br>
 * 完成日期：@since Oct 22, 2009<br>
 */
public class DatabackupAjax extends AimsBaseAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2189736693392783822L;
	
	@Resource(name="logsService")
	private ILogsService logsService;

	private boolean flag;
	private String fileName;

	/**
	 * 
	 * 方法概述：备份数据库
	 * 描述：备份数据库
	 * @return
	 * 返回类型：String
	 * 修改人：梁铭显
	 * 修改时间：2013-9-24
	 */
	public String backup(){
		DataBackup backup = new DataBackup();
		String path = ServletActionContext.getServletContext().getRealPath("");
		flag = backup.backup(path);
		
		logsService.addLog("【"+((AccountVO)super.getSession().get("account")).getName()+"】进行备份数据库操作");
		
		return SUCCESS;
	}
	
	/**
	 * 
	 * 方法概述：恢复数据库
	 * 描述：恢复数据库
	 * @return
	 * 返回类型：String
	 * 修改人：梁铭显 
	 * 修改时间：2013-9-25
	 */
	public String restoreData(){
		DataBackup backup = new DataBackup();
		String path = ServletActionContext.getServletContext().getRealPath("");
		flag = backup.getBackupFile(path + "/backup/" + fileName);
		
		logsService.addLog("【"+((AccountVO)super.getSession().get("account")).getName()+"】进行恢复数据库操作");
		return SUCCESS;
	}
	
	/**
	 * 
	 * 方法概述：删除备份文件
	 * 描述：删除备份文件
	 * @return
	 * 返回类型：String
	 * 修改人：梁铭显 
	 * 修改时间：2013-9-25
	 */
	public String removeBackupFile(){
		FileUtil fileUtil = new FileUtil();
		String path = ServletActionContext.getServletContext().getRealPath("");
		flag = fileUtil.removeFile(path + "/backup/" + fileName);
		
		logsService.addLog("【"+((AccountVO)super.getSession().get("account")).getName()+"】删除数据库备份文件");
		return SUCCESS;
	}
	
	public boolean isFlag() {
		return flag;
	}

	public void setFlag(boolean flag) {
		this.flag = flag;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
}
